The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the inventors hereof, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
To improve the reliability of communications and storage systems, error correcting codes (ECC) are commonly applied to the data that is conveyed or stored, which adds redundancy to the data stream. To increase the error correcting capabilities, multiple error correcting codes may be concatenated one after another. In many situations, two error correcting codes are concatenated together: an inner code and outer code. The inner code is responsible for correcting a majority of the errors, while the outer code is responsible for correcting the relatively few remaining errors which the inner code did not correct.
In order to correct a majority of the errors, the inner decoder utilizes a stronger code than the outer decoder. The stronger code used by the inner decoder requires more resources, like energy and time, to complete correction. After the inner decoder completes its decoding operation, the completed decoded result, is provided to the outer decoder. The completed decoded result may contain additional errors which the inner decoder was not able to correct during its complete decoding process. The outer decoder is capable of correcting additional errors that the inner code was not able to correct. After the outer decoder completes, the final decoded result is provided.
As described above, concatenating multiple error correcting codes needs more redundancy in the data stream which allows for greater number of errors to be corrected. However, typical concatenated error correcting code decoder systems may consume large amounts of resources in order to achieve the high level of error correction capability.